main
	__CC2DW
	Init_Main
		I2C1_Init
		sendRegister
			I2C1_Start
				I2C1_Is_Idle
			I2C1_Wr
			I2C1_Stop
		setupPLL
			Longword2Double
				NRM4032
					SETFUN32
					FIXSIGN32
					SETFOV32
					RES032
			Div_32x32_FP
				SETFDZ32
				RES032
				SETFOV32
				SETFUN32
			Mul_32x32_FP
				RES032
				SETFOV32
				SETFUN32
			Double2Longword
				SETIOV3224
			Mul_32x32_U
			sendRegister
				I2C1_Start
					I2C1_Is_Idle
				I2C1_Wr
				I2C1_Stop
		setupMultisynth
			sendRegister
				I2C1_Start
					I2C1_Is_Idle
				I2C1_Wr
				I2C1_Stop
		si5351aSetFrequency
			Mul_32x32_U
			Div_32x32_U
			Longword2Double
				NRM4032
					SETFUN32
					FIXSIGN32
					SETFOV32
					RES032
			Mul_32x32_FP
				RES032
				SETFOV32
				SETFUN32
			Div_32x32_FP
				SETFDZ32
				RES032
				SETFOV32
				SETFUN32
			Double2Longword
				SETIOV3224
			setupPLL
				Longword2Double
					NRM4032
						SETFUN32
						FIXSIGN32
						SETFOV32
						RES032
				Div_32x32_FP
					SETFDZ32
					RES032
					SETFOV32
					SETFUN32
				Mul_32x32_FP
					RES032
					SETFOV32
					SETFUN32
				Double2Longword
					SETIOV3224
				Mul_32x32_U
				sendRegister
					I2C1_Start
						I2C1_Is_Idle
					I2C1_Wr
					I2C1_Stop
			setupMultisynth
				sendRegister
					I2C1_Start
						I2C1_Is_Idle
					I2C1_Wr
					I2C1_Stop
			sendRegister
				I2C1_Start
					I2C1_Is_Idle
				I2C1_Wr
				I2C1_Stop
		SSD1306_Begin
			ssd1306_command
				I2C1_Start
					I2C1_Is_Idle
				I2C1_Wr
				I2C1_Stop
		SSD1306_ClearDisplay
		SSD1306_Display
			ssd1306_command
				I2C1_Start
					I2C1_Is_Idle
				I2C1_Wr
				I2C1_Stop
			I2C1_Start
				I2C1_Is_Idle
			I2C1_Wr
			I2C1_Stop
		BatCheck
			ADCRead
			Mul_16x16_U
			Div_16x16_U
			WordToStr
				Div_16x16_U
			SSD1306_GotoXY
			SSD1306_TextSize
			SSD1306_Print
				SSD1306_PutC
					Mul_16x16_U
					SSD1306_DrawPixel
					SSD1306_FillRect
						SSD1306_DrawFastVLine
							SSD1306_DrawLine
								abs
								SSD1306_DrawPixel
			SSD1306_Display
				ssd1306_command
					I2C1_Start
						I2C1_Is_Idle
					I2C1_Wr
					I2C1_Stop
				I2C1_Start
					I2C1_Is_Idle
				I2C1_Wr
				I2C1_Stop
		DisplayFreq
			LongToStr
				LongWordToStr
					Div_32x32_U
			SSD1306_GotoXY
			SSD1306_TextSize
			SSD1306_Print
				SSD1306_PutC
					Mul_16x16_U
					SSD1306_DrawPixel
					SSD1306_FillRect
						SSD1306_DrawFastVLine
							SSD1306_DrawLine
								abs
								SSD1306_DrawPixel
			SSD1306_Display
				ssd1306_command
					I2C1_Start
						I2C1_Is_Idle
					I2C1_Wr
					I2C1_Stop
				I2C1_Start
					I2C1_Is_Idle
				I2C1_Wr
				I2C1_Stop
		SSD1306_TextSize
		SSD1306_GotoXY
		SSD1306_Print
			SSD1306_PutC
				Mul_16x16_U
				SSD1306_DrawPixel
				SSD1306_FillRect
					SSD1306_DrawFastVLine
						SSD1306_DrawLine
							abs
							SSD1306_DrawPixel
	Controls
		SelectMode
			SSD1306_TextSize
			SSD1306_GotoXY
			SSD1306_Print
				SSD1306_PutC
					Mul_16x16_U
					SSD1306_DrawPixel
					SSD1306_FillRect
						SSD1306_DrawFastVLine
							SSD1306_DrawLine
								abs
								SSD1306_DrawPixel
			SSD1306_Display
				ssd1306_command
					I2C1_Start
						I2C1_Is_Idle
					I2C1_Wr
					I2C1_Stop
				I2C1_Start
					I2C1_Is_Idle
				I2C1_Wr
				I2C1_Stop
			sendRegister
				I2C1_Start
					I2C1_Is_Idle
				I2C1_Wr
				I2C1_Stop
		SelectStep
			SSD1306_TextSize
			SSD1306_GotoXY
			SSD1306_Print
				SSD1306_PutC
					Mul_16x16_U
					SSD1306_DrawPixel
					SSD1306_FillRect
						SSD1306_DrawFastVLine
							SSD1306_DrawLine
								abs
								SSD1306_DrawPixel
			SSD1306_Display
				ssd1306_command
					I2C1_Start
						I2C1_Is_Idle
					I2C1_Wr
					I2C1_Stop
				I2C1_Start
					I2C1_Is_Idle
				I2C1_Wr
				I2C1_Stop
		Mul_32x32_U
	si5351aSetFrequency
		Mul_32x32_U
		Div_32x32_U
		Longword2Double
			NRM4032
				SETFUN32
				FIXSIGN32
				SETFOV32
				RES032
		Mul_32x32_FP
			RES032
			SETFOV32
			SETFUN32
		Div_32x32_FP
			SETFDZ32
			RES032
			SETFOV32
			SETFUN32
		Double2Longword
			SETIOV3224
		setupPLL
			Longword2Double
				NRM4032
					SETFUN32
					FIXSIGN32
					SETFOV32
					RES032
			Div_32x32_FP
				SETFDZ32
				RES032
				SETFOV32
				SETFUN32
			Mul_32x32_FP
				RES032
				SETFOV32
				SETFUN32
			Double2Longword
				SETIOV3224
			Mul_32x32_U
			sendRegister
				I2C1_Start
					I2C1_Is_Idle
				I2C1_Wr
				I2C1_Stop
		setupMultisynth
			sendRegister
				I2C1_Start
					I2C1_Is_Idle
				I2C1_Wr
				I2C1_Stop
		sendRegister
			I2C1_Start
				I2C1_Is_Idle
			I2C1_Wr
			I2C1_Stop
	DisplayFreq
		LongToStr
			LongWordToStr
				Div_32x32_U
		SSD1306_GotoXY
		SSD1306_TextSize
		SSD1306_Print
			SSD1306_PutC
				Mul_16x16_U
				SSD1306_DrawPixel
				SSD1306_FillRect
					SSD1306_DrawFastVLine
						SSD1306_DrawLine
							abs
							SSD1306_DrawPixel
		SSD1306_Display
			ssd1306_command
				I2C1_Start
					I2C1_Is_Idle
				I2C1_Wr
				I2C1_Stop
			I2C1_Start
				I2C1_Is_Idle
			I2C1_Wr
			I2C1_Stop
